在数据库设计中字段尽量不要默认允许为NULL,因为NUll这个值太特殊了,最近在一个项目中再次掉如这个坑中。
简单描述一下我们遇到的问题:
数据表A的字段a类型为varchar,默认允许NULL,然后在程序中有一个业务需求的SQL语句是这个 SELECT * FROM A WHERE a != 'something'
,
原本期待的是这个SQL语句会按照我们期望的结果执行,查询出所有a不等于something的执行,然后实际上并不是如此。该SQL语句只查询出了a不能与NULL且不等于something的数据。后来查询才明白,因为NULL和任何其他值比较都是FALSE
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。